home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / Autoscroller.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.1 KB  |  89 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Point;
  4. import java.awt.Rectangle;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.event.MouseEvent;
  8.  
  9. class Autoscroller implements ActionListener {
  10.    private static Autoscroller sharedInstance = new Autoscroller();
  11.    private static MouseEvent event;
  12.    private static Timer timer;
  13.    private static JComponent component;
  14.  
  15.    public static void stop(JComponent var0) {
  16.       sharedInstance._stop(var0);
  17.    }
  18.  
  19.    public static boolean isRunning(JComponent var0) {
  20.       return sharedInstance._isRunning(var0);
  21.    }
  22.  
  23.    public static void processMouseDragged(MouseEvent var0) {
  24.       sharedInstance._processMouseDragged(var0);
  25.    }
  26.  
  27.    private void start(JComponent var1, MouseEvent var2) {
  28.       Point var3 = var1.getLocationOnScreen();
  29.       if (component != var1) {
  30.          this._stop(component);
  31.       }
  32.  
  33.       component = var1;
  34.       event = new MouseEvent(component, var2.getID(), var2.getWhen(), var2.getModifiers(), var2.getX() + var3.x, var2.getY() + var3.y, var2.getXOnScreen(), var2.getYOnScreen(), var2.getClickCount(), var2.isPopupTrigger(), 0);
  35.       if (timer == null) {
  36.          timer = new Timer(100, this);
  37.       }
  38.  
  39.       if (!timer.isRunning()) {
  40.          timer.start();
  41.       }
  42.  
  43.    }
  44.  
  45.    private void _stop(JComponent var1) {
  46.       if (component == var1) {
  47.          if (timer != null) {
  48.             timer.stop();
  49.          }
  50.  
  51.          timer = null;
  52.          event = null;
  53.          component = null;
  54.       }
  55.  
  56.    }
  57.  
  58.    private boolean _isRunning(JComponent var1) {
  59.       return var1 == component && timer != null && timer.isRunning();
  60.    }
  61.  
  62.    private void _processMouseDragged(MouseEvent var1) {
  63.       JComponent var2 = (JComponent)var1.getComponent();
  64.       boolean var3 = true;
  65.       if (var2.isShowing()) {
  66.          Rectangle var4 = var2.getVisibleRect();
  67.          var3 = var4.contains(var1.getX(), var1.getY());
  68.       }
  69.  
  70.       if (var3) {
  71.          this._stop(var2);
  72.       } else {
  73.          this.start(var2, var1);
  74.       }
  75.  
  76.    }
  77.  
  78.    public void actionPerformed(ActionEvent var1) {
  79.       JComponent var2 = component;
  80.       if (var2 != null && var2.isShowing() && event != null) {
  81.          Point var3 = var2.getLocationOnScreen();
  82.          MouseEvent var4 = new MouseEvent(var2, event.getID(), event.getWhen(), event.getModifiers(), event.getX() - var3.x, event.getY() - var3.y, event.getXOnScreen(), event.getYOnScreen(), event.getClickCount(), event.isPopupTrigger(), 0);
  83.          var2.superProcessMouseMotionEvent(var4);
  84.       } else {
  85.          this._stop(var2);
  86.       }
  87.    }
  88. }
  89.